package com.qy.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

/**
 * @author 袁大毛
 * * @date 2024/10/10 下午4:39
 * @描述
 */
public class OssUtils {

    //文件上传方法，返回一个文件名
    public static String ossShang(MultipartFile myfile) {
        OSS ossClient = null;
        try {
            // Endpoint以华东1（杭州）为例，其它Region请按实际情况填写。
            String endpoint = "oss-cn-wulanchabu.aliyuncs.com";
            //AccessKey
            String accessKeyId = "LTAI5t9LC6AAXQsGCC4t3FBk";
            //密钥
            String accessKeySecret = "SK8VeHUl01MvqvrzGY7DuW68ZIxm0m";
            //oss名称
            String bucketName = "yuandamao01";
            //生成随机文件名
            String f1 = UUID.randomUUID().toString().replace("-", "");
            // 填写Object完整路径，生成的文件名称
            String newName = f1 + myfile.getOriginalFilename();
            System.out.println("文件即将变成的名称：" + newName);
            // 创建OSSClient实例。
            ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
            // 填写本地文件的完整路径。如果未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件流。
            InputStream inputStream = myfile.getInputStream();
            System.out.println(inputStream);
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, newName, inputStream);
            // 创建PutObject请求。
            PutObjectResult result = ossClient.putObject(putObjectRequest);
            //yuandamao01.oss-cn-wulanchabu.aliyuncs.com/1.jpg
            //返回值
            String aaa="http://"+bucketName + "." + endpoint + "/" + newName;
            return aaa;

        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
    }